package com.guomei.bean.curse;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.guomei.bean.User;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

/**
 * 课程订单表实体类
 */
@Data
public class CourseOrder {
    /**
     * 订单ID
     */
    private Long id;

    /**
     * 订单编号
     */
    private String orderNo;

    /**
     * 用户ID
     */
    private Long userId;

    /**
     * 课程ID
     */
    private Long courseId;

    /**
     * 课程信息
     */
    private Course course;

    /**
     * 订单金额
     */
    private BigDecimal amount;

    /**
     * 优惠金额
     */
    private BigDecimal discountAmount;

    /**
     * 实付金额
     */
    private BigDecimal payAmount;

    /**
     * 优惠券ID
     */
    private Long couponId;

    /**
     * 支付宝交易号
     */
    private String tradeNo;

    /**
     * 报名ID
     */
    private Long enrollId;

    /**
     * 微信交易号
     */
    private String wxNo;

    /**
     * 支付方式(1-支付宝,2-微信)
     */
    private Short payType;

    /**
     * 支付状态(0-未支付,1-已支付,2-已取消)
     */
    private Short payStatus;
    /**
     * 订单状态（0-成功 1-支付宝回调处理失败 2-待回调）
     */
    private Short orderStatus;

    /**
     * 支付时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime payTime;

    /**
     * 订单过期时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime expireTime;

    /**
     * 分销人ID
     */
    private String distributionUserId;

    /**
     * 分销金额
     */
    private BigDecimal distributionAmount;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime createdTime;

    /**
     * 更新时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime updatedTime;

    //分页大小
    private Integer pageSize;

    //页数
    private Integer pageNum;

    private Boolean isDeleted;

    private Long teacherId;

    private List<Long> courseIds;

    private User user;

    /**
     * 0：分销老师  1：课程老师 2：总管理员
     */
    private String countType;

    private String courseName;



}
